Fractal Prefetching B+trees: Optimizing Both Cache and Disk Performance (CMU-CS-02-115)
نویسندگان
چکیده
B-Trees have been traditionally optimized for I/O performance with disk pages as tree nodes. Recently, researchers have proposed new types of B-Trees optimized for CPU cache performance in main memory environments, where the tree node sizes are one or a few cache lines. Unfortunately, due primarily to this large discrepancy in optimal node sizes, existing disk-optimized B-Trees su er from poor cache performance while cache-optimized B-Trees exhibit poor disk performance. In this paper, we propose fractal prefetching B-Trees (fpB-Trees), which embed \cache-optimized" trees within \disk-optimized" trees, in order to optimize both cache and I/O performance. We design and evaluate two approaches to breaking disk pages into cache-optimized nodes: diskrst and cacherst. These approaches are somewhat biased in favor of maximizing disk and cache performance, respectively, as demonstrated by our results. Both implementations of fpB-Trees achieve dramatically better cache performance than disk-optimized B-Trees: a factor of 1.1{1.8 improvement for search, up to a factor of 4.2 improvement for range scans, and up to a 20-fold improvement for updates, all without signi cant degradation of I/O performance. In addition, fpB-Trees accelerate I/O performance for range scans by using jump-pointer arrays to prefetch leaf pages, thereby achieving a speed-up of 2.5{5 on IBM's DB2 Universal Database.
منابع مشابه
Improving Index Performance through Prefetching (CMU-CS-00-177)
This paper proposes and evaluates Prefetching B-Trees (pB-Trees), which use prefetching to accelerate two important operations on B-Tree indices: searches and range scans. To accelerate searches, pB-Trees use prefetching to e ectively create wider nodes than the natural data transfer size: e.g., eight vs. one cache lines or disk pages. These wider nodes reduce the height of the B-Tree, thereby ...
متن کاملRedesigning Database Systems in Light of CPU Cache Prefetching
Computer systems have enjoyed an exponential growth in processor speed for the past 20 years, while main memory speed has improved only moderately. Today a cache miss to main memory takes hundreds of processor cycles. Recent studies have demonstrated that on commercial databases, about 50% or more of execution time in memory is often wasted due to cache misses. In light of this problem, a numbe...
متن کاملA Trace-Driven Comparison of Algorithms for Parallel Prefetching and Caching (CMU-CS-96-174)
High-performance I/O systems depend on prefetching and caching in order to deliver good performance to applications. These two techniques have generally been considered in isolation, even though there are signi cant interactions between them; a block prefetched too early reduces the e ectiveness of the cache, while a block cached too long reduces the effectiveness of prefetching. In this paper ...
متن کاملA Status Report on Research in Transparent Informed Prefetching (CMU-CS-93-113)
This paper focuses on extending the power of caching and prefetching to reduce file read latencies by exploiting application level hints about future I/O accesses. We argue that systems that disclose high-level knowledge can transfer optimization information across module boundaries in a manner consistent with sound software engineering principles. Such Transparent Informed Prefetching (TIP) sy...
متن کاملMy Cache or Yours? Making Storage More Exclusive (CMU-CS-02-186)
Modern high-end disk arrays often have several gigabytes of cache RAM. Unfortunately, most array caches use management policies which duplicate the same data blocks at both the client and array levels of the cache hierarchy: they are inclusive. Thus, the aggregate cache behaves as if it was only as big as the larger of the client and array caches, instead of as large as the sum of the two. Incl...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2015